import com.sun.xml.internal.fastinfoset.util.StringArray
import java.util.*
import kotlin.collections.ArrayList

/**
 * Created by Administrator on 2017/5/19.
 */
fun main(args: Array<String>) {

    /**
     * 声明变量
     */
    val msg: String = "hello kotlin"
    println(msg)
    println("——————————————————————————————————————————————————————————————")

    /**
     * val value相当于final
     * var 变量
     */
    val mRandom = Random()
    var times: Int = 0

    /**
     * for循环
     */
    for (i in 1..100000) {
        when (mRandom.nextInt(100000)) {
            in 1..50000 -> times = times + 1
        }
    }
    println(times);println("——————————————————————————————————————————————————————————————")

    /**
     * 静态类 工具类（全是静态方法的类，直接object声明不用class
     * 或者在class中 用companion object包裹方法就行了
     */
    val function=StaticFunction()
    function.printTxt()
    MyBoomBoomUtils.printMsg("盒盒 笑惹")
    StaticFunction.printMsg("zzz")
    /**
     * 带返回值的方法
     */
    println(StaticFunction.createRanNumber());println("——————————————————————————————————————————————————————————————")

    /**
     * java区别：
     * 如果一个类的 内部类用private class修饰，则不能访问内部类
     * 默认是public 不写是public
     */


    /**
     * List集合 基本和java一样
     */
    val mList= ArrayList<Int>()
    /**
     * 循环添加的写法 等同for(i in 1..10){}
     */
    (1..10).mapTo(mList) { Random().nextInt(it *100) }

    /**
     * 下表遍历 (直接当成数组写也可以
     */
    for (i in mList.indices){
        print(" "+mList[i])
    }
    println()
    /**
     * foreach
     */
    for (i in mList){
        print(" "+i)
    }
    println()
    println("——————————————————————————————————————————————————————————————")
}
